<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        // 第一张图：构造函数 和对象
        // function Person(name){
        //     this.name = name;
        //     this.age = 20;
        //     this.fn = function(){
        //         console.log("fn");
        //     }
        // }
        // Person.prototype.hobby = function(){
        //     console.log("喜欢篮球");
        // }
        // Person.prototype.action = function(){
        //     console.log("动作");
        // }
        // // 实例化对象
        // let zhangsan = new Person("张三");
        // console.log(zhangsan)
        /* 
            实例化之前  ： Person + Person.prototype  共同构成
                            new运算符 实例化
            实例化之后：   对象  + __proto__([[prototype]]);
        
        */
        // 第二张图：

        function Person(name){
            this.name = name;
        }
        Person.prototype.hobby = function(){
            console.log("喜欢篮球");
        }
        console.log(  Person.prototype.constructor === Person)
        // 实例化对象可以 调取构造函数里的属性和方法  也可以调取原型里的属性和方法；
        let zhangsan  =  new Person("张三");
        // console.log(zhangsan);
        // 解决了张三对象的识别问题 
        console.log(zhangsan.constructor===Person);

    </script>
</body>
</html>